#ifndef _PIXELNODE_H_ 
#define _PIXELNODE_H_

#include "impressionist.h"
#include "fibheap.h"

class PixelNode: public FibHeapNode {
public:
	PixelNode();
	PixelNode(const PixelNode & node);
	virtual ~PixelNode();
    virtual void operator =(FibHeapNode& RHS);
    virtual int  operator ==(FibHeapNode& RHS);
    virtual int  operator <(FibHeapNode& RHS);

	double linkCost[8];
	int state;
	double totalCost;
	//PixelNode *prevNode;
	int prevNode;
	int counter;
	int column, row;
};

class cmp_node {
public:
  bool operator() (const PixelNode& lhs, const PixelNode& rhs) const
  {
	 // printf("calling\n");
	  return (lhs.linkCost > rhs.linkCost);
  }
};

#endif